package com.thread.lesson.lambda;

/**
 * @Author: Mr.Xi
 * @Description:
 * @Date: Create in 10:16 2021/7/2
 * @Modified By:
 */
public class TestLambda2 {
    public static void main(String[] args) {
        ILove love = null;
        //1.Lambda表达式简化
        love = (int a) -> {
            System.out.println("i love you1 --- >"+a);
        };
        love.love(111);
        //简化1：去参数类型
        love = (a) -> {
            System.out.println("i love you2 --- >"+a);
        };
        love.love(222);
        //简化2：去小括号
        love = a -> {
            System.out.println("i love you3 --- >"+a);
        };
        love.love(333);
        //简化3：去大括号
        love = a -> System.out.println("i love you4 --- >"+a);
        love.love(444);
        /**
         * 总结：
         * 1、lambda表达式只能有一行代码的情况下才能简化成为一行，如果有多行，那么就用代码块（大括号）包裹
         * 2、前提是接口为函数式接口（函数式接口：一个有且仅有一个抽象方法，但是可以有多个非抽象方法的接口。）
         * 3、多个参数也可以去掉参数类型，要去掉就都去掉
         */

    }



}

interface ILove{
    void love(int a);
}